package com.sea.physical.service;

import com.sea.physical.entity.CreatePlan;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 创建发运计划
 * @author 陈鸿飞
 */
public interface CreatePlanService {
    /**
     * 条件查询
     * @param createPlan
     * @return
     */
    List<CreatePlan> findByCnd(CreatePlan createPlan);

    /**
     * 保存
     * @param createPlan
     * @return
     */
    int save(CreatePlan createPlan) throws Exception;

    /**
     * 查询指定
     * @param id
     * @return
     */
    CreatePlan findById(Integer id);

    /**
     * 修改
     * @param createPlan
     * @return
     */
    int usave(CreatePlan createPlan);

    /**
     * 删除
     * @param id
     * @return
     */
    int delete(Integer id);
    /**
     * 更新表头合计
     * @param createId
     * @return
     */
    int updateTotal(Integer createId);
    /**
     * 更新主表状态
     * @param status
     * @param id
     * @return
     */
    int updateStatus(Integer status,Integer id);
    /**
     * 根据柜号查找信息
     * @param createNo
     * @return
     */
    CreatePlan findByCreateNo(String createNo);
    /**
     * 查询可退税柜号
     * @return
     */
    List<CreatePlan> findRefusedPlanNo(Integer cou,String createPlanNo);
    /**
     * 更新状态
     * @param createPlanNo
     * @return
     */
    int updateRefused(String createPlanNo);
    /**
     * 主页物流7种计划状态
     * @return
     */
    Map<String,Integer> logisticsStatus();
    /**
     * 查找付款柜号
     * @return
     */
    List<CreatePlan> findPaymentCreatePlanNo();
    /**
     * 更新质检状态
     * @param createPlan
     * @return
     */
    Integer updateQualityStatus(CreatePlan createPlan);
    /**
     * 查询待质检柜子
     * @param createPlan
     * @return
     */
    List<CreatePlan> findByQuality(CreatePlan createPlan);

    /**
     * 更新文件
     * @param createFile
     * @param id
     * @return
     */
    Integer updateCreateFile(String createFile, Integer id);

    /**
     * 混装手动更新箱数
     * @param boxNumber
     * @param id
     * @return
     */
    Integer updateBoxNumberByCreateId(Integer boxNumber,Integer id);

    List<CreatePlan> findByCreatePlanNo(String[] ids);
}
